package BehavioralMode.memento.whiteBox.gameFile;

/**
 * 发起人角色 ：记录当前时刻的内部状态信息，提供创建备忘录和恢复备忘录数据的功能，实现其他业务功能，它可以访问备忘录里的所有信息。
 * */
public class Originator {

    private int vie;  // 生命力
    private int act;  // 攻击力
    private int def;  // 防御力

    // 初始化状态
    public void initStatus(){
        this.vie = 100;
        this.act = 100;
        this.def = 100;
    }


    // 显示状态
    public void showStatus() {
         System.out.print("生命值："+ vie);
         System.out.print("攻击力："+ act);
         System.out.println("防御力："+ def);
    }

    // 攻击boss
    public void attackBoss(){
        this.vie-=20;
        this.act-=20;
        this.def-=20;
        if(this.vie < 0)this.vie = 20;
        if(this.act < 0)this.act = 20;
        if(this.def < 0)this.def = 20;

    }

    // 保存状态
    public Memento createMemnto(){
        return  new Memento(vie,act,def);
    }

    // 恢复存档
    public void restore(Memento memnto){
        this.vie = memnto.getVie();
        this.act = memnto.getVie();
        this.def = memnto.getDef();
    }

}
